using Myotragus.Data.Containers;
using Myotragus.Data.Criteria;
using Myotragus.Data.Domain;
using Myotragus.Data.Repositories;

namespace Myotragus.Data
{
    public interface IDefaultsLocalizableQueryBuilder<TEntity> : ILocalizableQueryBuilder<TEntity> 
        where TEntity : IEntity
    {
    }

    public class DefaultsLocalizableQueryBuilder<TEntity> : LocalizableQueryBuilder<TEntity>, 
        IDefaultsLocalizableQueryBuilder<TEntity> 
            where TEntity : IEntity
    {
        public DefaultsLocalizableQueryBuilder(
            ISessionFactoryAdapter sessionFactory, 
            IDefaultsLocalizableEntityDescriptor<TEntity> entityDescriptor, 
            IDefaultsLocalizableEntityProjector<TEntity> projector, IDefaultsLocalizableAlias alias)
                : base(sessionFactory, entityDescriptor, projector, alias)
        {

        }
    }

    public class DefaultsLocalizableReadRepository<TEntity, TId> : LocalizableReadRepository<TEntity>, 
        IDefaultsLocalizableReadRepository<TEntity, TId> 
            where TEntity : IEntity
    {
        public DefaultsLocalizableReadRepository(IEntitiesContainer entities, IDefaultsLocalizableQueryBuilder<TEntity> defaultsLocalizableQueryBuilder)
                : base(entities, defaultsLocalizableQueryBuilder)
        {
        }
    }
}